<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mipicsiss: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">mipicsiss
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">mipicsiss Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>This is main header file of the Xilinx MIPI CSI Rx Subsystem driver.<b>MIPI CSI Rx Subsystem Overview</b></p>
<p>MIPI CSI Subsystem is collection of IP cores to control, receive and translate data received from a MIPI CSI Transmitter. The MIPI CSI2 Rx Subsystem is a plug-in solution for interfacing with MIPI CSI based image sensors and rest of the video pipeline. It hides all the complexities of programming the underlying cores from end user.</p>
<p><b>Core Features</b></p>
<p>MIPI CSI Rx Subsystem supports following features</p><ul>
<li>Support for 1 to 4 PPI Lanes.</li>
<li>Line rates ranging from 80 to 1500 Mbps.</li>
<li>Different data type support(RAW,RGB,YUV).</li>
<li>AXI IIC support for CCI Interface.</li>
<li>Using existing AXI IIC for CCI interface support for better understanding &amp; compatibility with other IIC’s (if any) used in the system</li>
<li>Filtering of packets based on Virtual channel ID.</li>
<li>Single,Dual,Quad pixel support at output interface compliant to UG934 format.</li>
</ul>
<p>The GUI in IPI allows for the following configurations</p><ul>
<li>Lanes ( 1 to 4 )</li>
<li>Pixel Format (All RAW and RGB, only YUV422 8bit)</li>
<li>Virtual Channel (to filter or allow all from interlaced streams)</li>
<li>Number of Pixels per clock (1, 2, 4)</li>
<li>DPHY with/without Register interface</li>
<li>Line Rate</li>
<li>Buffer Depth</li>
<li>Embedded Non Image data (if needed)</li>
<li>Add IIC to subsystem (if required)</li>
</ul>
<p>The IIC can be added if the system doesn't contain an IIC or if a dedicated IIC is to be used for MIPI CSI Rx Subsystem. In order to reduce resource usage, the DPHY can be configured to be without register interface with fixed functions. Static configuration parameters are stored in xcsiss_g.c file that gets generated when compiling the board support package (BSP). A table is defined where each entry contains configuration information for the instances of the subsystem in the design. This information includes the elected configuration, sub-cores used and their device ID, base addresses of memory mapped devices and address range available for subsystem frame/field buffers.</p>
<p>The subsystem driver itself always includes the full software stack irrespective of the configuration selected. Generic API's are provided to interact with the subsystem and/or with the included sub -cores. At run-time the subsystem will query the static configuration and configures itself for supported use cases</p>
<p>The subsystem driver provides an abstraction on top of the CSI and DPHY drivers.</p>
<p>The IIC instance (if present) is shared with application and can be controlled using the AXI IIC driver.</p>
<p><b>Software Initialization &amp; Configuration</b></p>
<p>The application needs to do following steps in order for preparing the MIPI CSI2 Rx Subsystem core to be ready.</p>
<ul>
<li>Call XCsiSs_LookupConfig using a device ID to find the core configuration.</li>
<li>Call XCsiSs_CfgInitialize to initialize the device and the driver instance associated with it.</li>
</ul>
<p><b>Interrupts</b></p>
<p>The <a class="el" href="group__csiss__v1__0.html#ga806675fd5dc154656f12869b549e916a" title="This routine installs an asynchronous callback function for the given HandlerType: ...">XCsiSs_SetCallBack()</a> is used to register the call back functions for MIPI CSI2 Rx Subsystem driver with the corresponding handles</p>
<p><b> Virtual Memory </b></p>
<p>This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.</p>
<p><b> Threads </b></p>
<p>This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.</p>
<p><b>Asserts</b></p>
<p>Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that application developers leave asserts on during development.</p>
<p><b>Building the driver</b></p>
<p>The MIPI CSI2 Rx Subsystem driver is composed of source files and depends on the CSI and DPHY drivers. The IIC driver is pulled in if the the IIC instance is enabled. The DPHY driver is pulled in only if the register interface has been enabled for it.Otherwise the CSI driver and subsystem files are built.</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver Who Date     Changes
<hr/>

1.0 vsa 07/25/15 Initial release
1.1 sss 08/17/16 Added 64 bit support
    sss 08/29/16 Renamed SubCore to <a class="el" href="struct_csi_rx_ss_sub_core.html" title="Sub-Core Configuration Table. ">CsiRxSsSubCore</a>
    ms  01/23/17 Modified xil_printf statement in main function for all
                 examples to ensure that "Successfully ran" and "Failed"
                 strings are available in all examples. This is a fix
                 for CR-965028.
    ms  03/17/17 Added readme.txt file in examples folder for doxygen
                 generation.
</pre> </div></div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
